
package Controlador;

import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import Controlador.FacadeCliente;
import javax.swing.JFrame;
import javax.swing.JOptionPane;


import Vista.VistaIngrediente;
import Vista.VistaMenu;
import Vista.VistaCliente;
import Vista.VistaCategoria;
import Vista.VistaProducto;
import Vista.VistaCompra;
import Vista.VistaOrden;
import Vista.Vistalistaexistencia;
import Vista.Vistalistaingredientes;
import Vista.Vistalistaventamonto;
import Vista.Vistalistacantidad;

import Modelo.Cliente;
import Modelo.Ingrediente;
import Modelo.Orden;
import Modelo.Categoria;
import Modelo.Compra;
import Modelo.Orden;
import Modelo.Listaexistencia;
import Modelo.Accion;

public class CntrlMenu implements ActionListener,ItemListener{
	
	VistaMenu vistaMenu;
	FacadeCliente facade=new FacadeCliente();
	
	public CntrlMenu(VistaMenu vistamenu)
	{
		vistaMenu=vistamenu;
		
	}
	
	
	public void actionPerformed(ActionEvent ae) {
		String opcion=(String)ae.getActionCommand();
		if(opcion.equals("Registrar Cliente")){
			facade.mostrarVista();
		}
		if(opcion.equals("Registrar Producto")){
			VistaProducto vistaProducto=new VistaProducto();
			vistaProducto.setVisible(true);
			vistaProducto.setLocation(50, 50);
			vistaProducto.setResizable(false);
			vistaProducto.setSize(500,560);
		}
		
		if(opcion.equals("Registrar Categoria")){
			VistaCategoria vistaCategoria=new VistaCategoria();
			vistaCategoria.setVisible(true);
			vistaCategoria.setLocation(50, 50);
			vistaCategoria.setResizable(false);
			vistaCategoria.setSize(320,300);
		}
		if(opcion.equals("Registrar Ingrediente")){
			VistaIngrediente vistaIngrediente=new VistaIngrediente();
			vistaIngrediente.setVisible(true);
			vistaIngrediente.setLocation(50, 50);
			vistaIngrediente.setResizable(false);
			vistaIngrediente.setSize(320,300);
	         
              }
		
		if(opcion.equals("Registrar Compras")){
			VistaCompra vistaCompra=new VistaCompra();
			vistaCompra.setVisible(true);
			vistaCompra.setLocation(50, 50);
			vistaCompra.setResizable(false);
			vistaCompra.setSize(320,300);
		}
		
		
		if(opcion.equals("Registrar Orden de venta")){
			VistaOrden VistaOrden=new VistaOrden();
			VistaOrden.setVisible(true);
			VistaOrden.setLocation(50,50);
			VistaOrden.setResizable(false);
			VistaOrden.setSize(400,700);
		}
		
		if(opcion.equals("Listado de ingredientes existentes")){
			 List<Ingrediente> ingredientes;
		    	Accion accion = new Accion();
		    	ingredientes=accion.obtenerIngredientes();
				Vistalistaexistencia vistalistaexis=null;
				try {
					vistalistaexis = new Vistalistaexistencia("Cantidad Existente de cada Ingrediente",ingredientes);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			vistalistaexis.setVisible(true);
			vistalistaexis.setLocation(50,50);
			//vistalistaexis.setResizable(false);
			vistalistaexis.setSize(400,700);
		}
		
		
		 if (opcion.equals("Listado de ingredientes mas usados")){
		    	ResultSet rs1;
		    	Accion accion = new Accion();
				rs1=accion.obtenerIngredientesMasUsados();
				Vistalistaingredientes vVentas=null;
				try {
					vVentas = new Vistalistaingredientes("Ingredientes mas usados en los productos ordenados descendentemente",rs1);
				} catch (SQLException e){
					e.printStackTrace();
				}
				vVentas.setLocation(50, 50);
				vVentas.setResizable(true);
				vVentas.setSize(400,300);
				vVentas.setVisible(true);
			
		     }
		 if (opcion.equals("Productos vendidos ordenados ascendentememnte por Cantidad")){
		    	ResultSet result;
		    	Accion accion = new Accion();
				result=accion.obtenerProdVendCantidadAsc();
				Vistalistacantidad vVentas=new Vistalistacantidad();
				try {
					vVentas = new Vistalistacantidad("Productos vendidos por cantidad ordenados ascendentemente",result);
				} catch (SQLException e) {
					e.printStackTrace();
				}
				vVentas.setLocation(50, 50);
				vVentas.setResizable(true);
				vVentas.setSize(400,300);
				vVentas.setVisible(true);
			
		     }
		 if (opcion.equals("Productos vendidos ordenados descendentemente por cantidad")){
		    	ResultSet result;
		    	Accion accion = new Accion();
				result=accion.obtenerProdVendCantidadDesc();
				Vistalistacantidad vVentas=new Vistalistacantidad();
				try {
					vVentas = new Vistalistacantidad("Productos Vendidos por cantidad descendentemente",result);
				} catch (SQLException e){
					e.printStackTrace();
				}
				vVentas.setLocation(50, 50);
				vVentas.setResizable(true);
				vVentas.setSize(400,300);
				vVentas.setVisible(true);
			
		     }
		 if (opcion.equals("Productos Vendidos Ordenados Ascendentemente por monto")){
		    	ResultSet result;
		    	Accion accion = new Accion();
		    	result=accion.obtenerProdVendMontoAsc();
		    	Vistalistaventamonto vVentas=new Vistalistaventamonto();
				try {
					vVentas = new Vistalistaventamonto("Productos Vendidos Ordenado Ascendentemente por monto",result);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				vVentas.setLocation(50, 50);
				vVentas.setResizable(true);
				vVentas.setSize(400,300);
				vVentas.setVisible(true);
			
		     }
		 if (opcion.equals("Productos Vendidos Ordenados por Monto Descendentemente")){
		    	ResultSet result;
		    	Accion accion = new Accion();
		    	result=accion.obtenerProdVendMontoDesc();
		    	Vistalistaventamonto vVentas=new Vistalistaventamonto();
				try {
					vVentas = new Vistalistaventamonto("Productos Vendidos Ordenado Descendentemente por monto",result);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				vVentas.setLocation(50, 50);
				vVentas.setResizable(true);
				vVentas.setSize(400,300);
				vVentas.setVisible(true);
			
		     }
		 
		
		if(opcion.equals("Salir")){
	   int opc = JOptionPane.showConfirmDialog(new JFrame(),"Desea salir del sistema?",
		     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
		     JOptionPane.QUESTION_MESSAGE);
              if (opc == JOptionPane.YES_OPTION)
             {
	            vistaMenu.dispose();
	            System.exit(0);
              }
		
		  vistaMenu.repaint();
		}
		
		
		}
		
    


	@Override
	public void itemStateChanged(ItemEvent arg0) {
		vistaMenu.repaint();
		
	}
}	
